#pragma once
#include <string>
#include <Common/headers.h>

namespace occ {
	using Color = glm::u8vec4;

	class DefaultColor {
	public:
		static Color White() { return Color(255, 255, 255, 255); }
		static Color Black() { return Color(0, 0, 0, 255); }
		static Color Red() { return Color(255, 0, 0, 255); }
		static Color Green() { return Color(0, 255, 0, 255); }
		static Color Blue() { return Color(0, 0, 255, 255); }
		static Color Yellow() { return Color(238, 238, 0, 255); }
		static Color MidnightBlue() { return Color(25, 25, 112, 255); }
		static Color DarkGreyGreen() { return Color(47, 79, 79, 255); }

		static Color get(const std::string& color_name) {
			if (color_name == "White") return White();
			if (color_name == "Black") return Black();
			if (color_name == "Red") return Red();
			if (color_name == "Green") return Green();
			if (color_name == "Blue") return Blue();
			if (color_name == "Yellow") return Yellow();
			if (color_name == "MidnightBlue") return MidnightBlue();
			if (color_name == "DarkGreyGreen") return DarkGreyGreen();
			throw "Not a default color";
		}
	};
}